

#include "../../object/base/Object_Base.h"

#ifndef _Can_Array_H
#define _Can_Array_H

/**
 *  config info
 */
template<class NodeT>
struct Can_Array_Conf : public Object_Base_Conf{
    /** 配置数组的类型定义 */
    typedef float CONFTYPE;
    // 配置数组
    CONFTYPE* m_tConfs;
    // data list size
    int size;
    // now position
    int position;
    // struct construction
    Can_Array_Conf<NodeT>();
    
};

template<class NodeT>
class Can_Array : public Object_Base
{
public:
    // a list of point-type data
    NodeT** m_arData;
    /**
     * return m_arData
     */
    NodeT** getAllData();
    
    /**
     * put in one item
     */
    int putOne(NodeT* a_item);
    
    /**
     * put in some item once
     * return 0 is finish 'return'>0 mean there're 'return' data put fail
     */
    int putSome(NodeT** a_items, int a_itemSize);
    
    Can_Array<NodeT>();
    
protected:

    Can_Array_Conf<NodeT>* m_sCan_Array_Conf;
    
};

#endif





